/**
 * 使用Node.js编写的静态文件服务器
 */
var http = require("http");
var url = require("url");
var path = require("path");
var fs = require("fs");
var mimeParse = require("./modules/mimeParse");//引入自定义的mimeParse模块
//创建一个http Server，用于处理用户请求
http.createServer(function (req,res) {
    //console.log(req.url);
    var urlInfo = url.parse(req.url);//解析Url
    //console.log(urlInfo);
    var pathname = urlInfo.pathname;
    console.log("pathname："+pathname);
    if(pathname=='/'){
        pathname='/index.html'; /*默认加载的首页*/
    }
    //获取文件的后缀名
    var extname=path.extname(pathname);
    console.log("extname："+extname);
    if(pathname!='/favicon.ico') {  /*过滤请求favicon.ico*/
        //文件操作,根据pathname获static下面的对应的静态文件
        fs.readFile("static/"+pathname,function (err,data) {
            if(err){//找不到文件就会出错,err就会是true
                fs.readFile('static/404.html',function(error,data404){
                    if(error){
                        console.log(error);
                    }
                    res.writeHead(404,{"Content-Type":"text/html;charset='utf-8'"});
                    res.write(data404);
                    res.end(); /*结束响应*/
                })
            }else{
                //根据文件名后缀获取响应头类型
                var mimeType = mimeParse.getMime(extname);
                //设置 HTTP 头部，状态码是 200，文件类型是 html，字符集是 utf8
                res.writeHead(200,{"Content-Type":mimeType+";charset=UTF-8"});
                res.write(data);//将从文件中读取到的数据发送给浏览器展示
                res.end(); /*结束响应*/
            }
        });
    }
}).listen(8888);
console.log("服务器启动，访问地址：http://localhost:8888");